import random

"""
1、随机生成 10 个整数（1-100的范围）保存到列表，使用冒泡排序，对其进行从大到小排序
2、使用二分查找，查找是否有8这个数，如果有，则返回对象的下标，如果没有，返回 -1
"""

num_list = [random.randint(1, 100) for _ in range(10)]
print(f"排序前：num_list = {num_list}")


def bubble_sort(my_list):
    l = len(my_list)
    for i in range(l - 1):
        for j in range(l - i - 1):
            if my_list[j] < my_list[j + 1]:
                my_list[j], my_list[j + 1] = my_list[j + 1], my_list[j]


bubble_sort(num_list)
print(f"排序后：num_list = {num_list}")


def binary_search(my_list, find_val):
    find_index = -1
    left_index, right_index = 0, len(my_list) - 1

    while left_index <= right_index:
        middle_index = (left_index + right_index) // 2
        if find_val > my_list[middle_index]:
            right_index = middle_index - 1
        elif find_val < my_list[middle_index]:
            left_index = middle_index + 1
        else:
            find_index = middle_index
            break
    return find_index

res_index = binary_search(num_list, 8)
print(f"8 的索引为：{res_index}")